﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace coliseu.BussinessLayer
{
    public class FuncionarioBL
    {
        private coliseuEntities cEntities;

        public FuncionarioBL()
        {
            cEntities = new coliseuEntities(Properties.Settings.Default.conn_coliseu);
        }

        public List<funcionario> selecionar()
        {
            return (from x in cEntities.funcionario select x).ToList();
        }

      //  public List<funcionario> selecionar(string descricao)
      //  {
           // return (from x in cEntities.bloco where x.descricao.Contains(descricao) select x).ToList();
      //  }

        public List<funcionario> selecionar(string nome)
        {
            return
                (
                    from x in  cEntities.funcionario where x.nome.Contains(nome)
                    select x
                ).ToList();
        }
        public funcionario selecionar(int id_funcionario)
        {
            return
                (
                    from x in cEntities.funcionario
                    where x.id_funcionario == id_funcionario
                    select x
                ).First();
        }

        public void salvar(funcionario b, string tipo)
        {

            if (tipo == "insert")
            {
                cEntities.AddTofuncionario(b);
            }
            else
            {
                cEntities.funcionario.ApplyCurrentValues(b);
            }
            cEntities.SaveChanges();
        }

        public void excluir(funcionario b)
        {            
            cEntities.funcionario.DeleteObject(b);
            
            List<funcionario_contato> x = cEntities.funcionario_contato.Where(u => u.id_funcionario == b.id_funcionario).ToList();
            foreach (funcionario_contato f in x)
            {

                cEntities.funcionario_contato.DeleteObject(f);
            }


            cEntities.funcionario.DeleteObject(b);
            cEntities.SaveChanges();
        }
    }
}
